<!DOCTYPE html>

<html>
<head>
  <style>
    .fixed {
      position: fixed;
      z-index: 1;
    }

    .absolute {
        position: absolute;
    }

    .unscrollable {
        overflow-x: hidden;
        overflow-y: hidden;
    }

    .box {
        top: 100px;
        left: 10px;
        width: 100px;
        height: 100px;
    }

    .red {
        background-color: red;
    }

    .lime {
        background-color: lime;
    }

    .composited {
        will-change: transform;
    }
  </style>

  <script type="text/javascript">
    if (window.internals)
      internals.settings.setPreferCompositingToLCDTextEnabled(true);

    if (window.testRunner) {
      testRunner.dumpAsText();

      window.addEventListener("load", function() {
        document.getElementById("layertree").innerText = internals.layerTreeAsText(document);
      }, false);
    }
  </script>
</head>

<body class="unscrollable">
  <div style="height: 4000px">
    <p>Even though we can opt-out of fixed-position compositing for
       unscrollable fixed-position containers, we still need to composite
       fixed-position layers that need compositing for other reasons such as
       overlap.</p>
    <pre id="layertree"></pre>
  </div>

  <div class="absolute composited red box"></div>

  <!-- This should be composited because it overlaps a composited layer. -->
  <div class="fixed lime box"></div>
</body>
</html>

